var console_ = console.log;
(function() {
    re_obj = {
        'replace_': {
            count_: 0
        },
        'test_': {
            count_: 0
        },
        'match_': {
            count_: 0
        }
    };
    var match_ = String.prototype.match;
    String.prototype.match = function() {
        var res = re_obj.match_[arguments[0]];
        if (typeof (res) != 'undefined') {
            return res;
        }
        var res = match_.apply(this, arguments);
        re_obj.match_[arguments[0]] = res;
        re_obj.match_.count_ += 1;
        if (typeof (arguments[0]) == 'object') {
            console_(this)
            console_(arguments[0] + '  ===>  ' + 'replace_' + '  ==>  ' + res);
            debugger ;
        }
        ;return res;
    }
    var matchall_ = String.prototype.matchall;
    String.prototype.matchall = function() {
        var res = matchall_.apply(this, arguments);
        if (typeof (arguments[0]) == 'object') {
            console_(this)
            console_(arguments[0] + '  ===>  ' + 'matchall_' + '  ==>  ' + res);
            debugger ;
        }
        ;return res;
    }
    var search_ = String.prototype.search;
    String.prototype.search = function() {
        var res = search_.apply(this, arguments);
        if (typeof (arguments[0]) == 'object') {
            console_(this)
            console_(arguments[0] + '  ===>  ' + 'search_' + '  ==>  ' + res);
            debugger ;
        }
        ;return res;
    }
    var replace_ = String.prototype.replace;
    String.prototype.replace = function() {
        var res = re_obj.replace_[arguments[0]];
        if (typeof (res) != 'undefined') {
            return res;
        }
        var res = replace_.apply(this, arguments);
        re_obj['replace_'][arguments[0].toString()] = res;
        re_obj['replace_']['count_'] += 1;
        if (typeof (arguments[0]) == 'object') {
            console_(this)
            console_(arguments[0] + '  ===>  ' + 'replace_' + '  ==>  ' + res);
            debugger ;
        }
        ;return res;
    }
    var test_ = RegExp.prototype.test;
    RegExp.prototype.test = function() {
        var res = re_obj.test_[this.toString()];
        if (typeof (res) != 'undefined') {
            return res;
        }
        var res = test_.apply(this, arguments)
        re_obj['test_'][this.toString()] = res;
        re_obj['test_']['count_'] += 1;
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'test_' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
    ;
    var compile_ = RegExp.prototype.compile;
    RegExp.prototype.compile = function() {
        var res = compile_.apply(this, arguments)
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'compile' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
    var match__ = RegExp.prototype.match;
    RegExp.prototype.match = function() {
        var res = match__.apply(this, arguments)
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'match__' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
    var search__ = RegExp.prototype.search;
    RegExp.prototype.search = function() {
        var res = search__.apply(this, arguments)
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'search__' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
    var replace__ = RegExp.prototype.replace;
    RegExp.prototype.replace = function() {
        var res = replace__.apply(this, arguments);
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'replace__' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
    var matchall__ = RegExp.prototype.matchall;
    RegExp.prototype.matchall = function() {
        var res = matchall__.apply(this, arguments)
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'matchall__' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
    var split = RegExp.prototype.split;
    RegExp.prototype.split = function() {
        var res = split.apply(this, arguments);
        if (typeof (this) == 'object') {
            console_(this + '  ===>  ' + 'split' + '  ==>  ' + res);
            debugger
        }
        ;return res;
    }
}
)();
re_obj = {
    "replace_": {
        "count_": 20,
        "/\\D/g": "21403376841434722031",
        "w": "(?:\\\\.|[\\w#-]|[^\\x00-\\xa0])+",
        "/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/gi": "<input type='file'/>",
        "/#.*$/": "/api/loginInfo",
        "/^\\/\\//": "/api/loginInfo",
        "/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g": "json",
        "/[\\t\\r\\n\\f]/g": " page-item page-message active ",
        "/^[\\x20\\t\\r\\n\\f]+|((?:^|[^\\\\])(?:\\\\.)*)[\\x20\\t\\r\\n\\f]+$/g": "\u0001",
        "/^-ms-/": "cursor",
        "/-([\\da-z])/gi": "cursor",
        "/\\+/g": "true",
        "/%20/g": "",
        "/\\./g": "537.36",
        "/[vV]isibilityState/": "visibilitychange",
        "/.*@/": "match.yuanrenxue.com",
        "/:\\d+$/": "match.yuanrenxue.com",
        "/:\\d+/": "match.yuanrenxue.com",
        "/(:\\d+)?[/?#].*/": "match.yuanrenxue.com",
        "/^https?:\\/\\//": "hm.baidu.com/hm.gif?cc=1&ck=1&cl=24-bit&ds=1366x768&vl=486&et=0&ja=0&ln=zh-cn&lo=0&lt=1647372343&rnd=93229514&si=c99546cf032aaa5a679230de9a95c7db&v=1.2.91&lv=3&sn=19048&r=0&ww=318&ct=!!&u=https%3A%2F%2Fmatch.yuanrenxue.com%2Fmatch%2F14&tt=%E7%AC%AC%E5%8D%81%E5%9B%9B%E9%A2%98%20-%E7%8C%BF%E4%BA%BA%E5%AD%A6",
        "/&u=[^&]*/": "hm.baidu.com/hm.gif?cc=1&ck=1&cl=24-bit&ds=1366x768&vl=486&et=0&ja=0&ln=zh-cn&lo=0&lt=1647372343&rnd=93229514&si=c99546cf032aaa5a679230de9a95c7db&v=1.2.91&lv=3&sn=19048&r=0&ww=318&ct=!!&tt=%E7%AC%AC%E5%8D%81%E5%9B%9B%E9%A2%98%20-%E7%8C%BF%E4%BA%BA%E5%AD%A6"
    },
    "test_": {
        "count_": 23,
        "/^[^{]+\\{\\s*\\[native \\w/": true,
        "/^margin/": true,
        "/^(?:about|app|app-storage|.+-extension|file|res|widget):$/": false,
        "/<|&#?\\w+;/": true,
        "/^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/": false,
        "/^[\\x20\\t\\r\\n\\f]*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\([\\x20\\t\\r\\n\\f]*((?:-\\d)?\\d*)[\\x20\\t\\r\\n\\f]*\\)|)(?=[^-]|$)/i": false,
        "/(=)\\?(?=&|$)|\\?\\?/": false,
        "/^(?:focusinfocus|focusoutblur)$/": false,
        "/^(?:GET|HEAD)$/": true,
        "/([?&])_=[^&]*/": false,
        "/\\?/": false,
        "/^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$/i": false,
        "/^spring/": false,
        "/windows|win32/i": true,
        "/KHTML/": true,
        "/ Mobile\\//": false,
        "/webOS/": false,
        "/ Android/": false,
        "/^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/": false,
        "/msie (\\d+\\.\\d+)/i": false,
        "/https?:/": true,
        "/^[a-f0-9]{32}\\/?$/": false,
        "/[\"\\\\\\x00-\\x1f]/": false
    },
    "match_": {
        "count_": 19,
        "/\\S+/g": ["text", "once", "memory"],
        "/\\w+/g": ["checked", "selected", "async", "autofocus", "autoplay", "controls", "defer", "disabled", "hidden", "ismap", "loop", "multiple", "open", "readonly", "required", "scoped"],
        "/AppleWebKit\\/([^\\s]*)/": ["AppleWebKit/537.36", "537.36"],
        "/NokiaN[^\\/]*|Android \\d\\.\\d|webOS\\/\\d\\.\\d/": null,
        "/Chrome\\/([^\\s]*)/": ["Chrome/96.0.4664.93", "96.0.4664.93"],
        "/^(https?:\\/\\/)?([^\\/\\?#]*)/": ["https://match.yuanrenxue.com", "https://", "match.yuanrenxue.com"],
        "/(^|&|\\?|#)(hmmd)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(hmpl)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(utm_medium)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(hmkw)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(utm_term)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(hmci)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(utm_content)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(hmsr)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(utm_source)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(hmcu)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(utm_campaign)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(baidu-analytics-token)=([^&#]*)(&|$|#)/": null,
        "/(^|&|\\?|#)(baidu-analytics-jn)=([^&#]*)(&|$|#)/": null
    }
};
var vm__ = [];
function proxy(obj) {
    return new Proxy(obj,{
        set(obj, prop, value) {
            var objName = obj.name || obj.toString().replace(/\[|\]/g, '').split(' ')[1];
            if(typeof(value)=='string'){
                var value_ ="\"" + value + "\"";
            }else if(typeof(value)=='undefined'){
                var value_ = 'undefined'
            }else{
                var value_ = value.toString();
            }
            if(isNaN(parseInt(prop))){
                // console_('set：' + objName + '.' + prop  + '=' + value_);
            }else{
                // console_('set：' + objName + '[' + prop +']' + '=' + value_);
            }
            // debugger;
            return Reflect.set.apply(this, arguments);
        },
        get(obj, prop) {
            var objName = obj.name || obj.toString().replace(/\[|\]/g, '').split(' ')[1];
            var value = obj[prop];
            if(!(obj.hasOwnProperty(prop)||obj.__proto__.hasOwnProperty(prop)
            )){
                var value_ = 'undefined';
                if(isNaN(parseInt(prop))){
                    var res = objName + '.' + prop
                    console_('get：' + value_ + '==>  ' + res);
                }else{
                    var res = objName + '[' + prop +']'
                    console_('get：' + value_ + '==>  ' + res);
                }
                vm__.push(res)
                debugger;
            };
            return value;
        }
    })
}
;
Window = class Window{};
window = global;
window.name = 'window';
window.top = window;
window.self = window;
window.__proto__ = Window;
// ===============================基础函数======================================
window.HTMLFormElement=function(){};
window.openDatabase=function(){};
window.webkitRequestFileSystem = function(){};
window.clearInterval = function(){};
window.chrome={};
window.crypto = {};
window.crypto.getRandomValues = function(int_array){
    var arry_len = int_array.length;
    for(var i=0;i<arry_len;i++){
        arry_len[i] = parseInt(Math.random()*Math.pow(10,10))
    };
    return int_array;
};
window.MediaStreamTrack=function(){};
window.MimeType = function(){};
// 关于定时器
window.setTimeout = function(){};
window.setInterval = function(){};
// 关于DOM元素
window.DOMParser = function(){};
// 关于监听器
window.addEventListener = function(){};
window.attachEvent = function(){};
// 关于本地缓存
window.globalStorage = undefined;
window.localStorage = class localStorage{};
window.sessionStorage = class sessionStorage{};
sessionStorage.setItem = function(p1,p2){
    this[p1] = p2;
};
localStorage.setItem = function(p1,p2){
    this[p1] = p2;
}
sessionStorage.getItem = function(value){
    return this[value]
};
localStorage.getItem = function(value){
    return this[value]
};
localStorage.removeItem = function(value){
    delete this[value];
};
// 关于指针
window.PointerEvent=function(){};
// 关于编解码
window.atob = (str) => {
    return new Buffer.from(str, "base64").toString("binary")
};
window.btoa = (str) => {
    return new Buffer.from(str, "binary").toString("base64")
};
// 关于RTCP
window.RTCPeerConnection=function(){};
window.webkitRTCPeerConnection=function(){};
window.webkitRTCPeerConnection=function(){};
RTCPeerConnection.createDataChannel=function(){};
// 关于网络通信
window.XMLHttpRequest=function(){};
XMLHttpRequest.__proto__.open = function(){};
window.fetch=function(){};
// 无关变量
window.indexedDB=undefined;
window.mozIndexedDB=undefined;
window.webkitIndexedDB=undefined;
window.msIndexedDB=undefined;
window.$b_platform=undefined;
window.msCredentials=undefined;
window.FaveIconJavaInterface=undefined;
window.jesion=undefined;
window.ActiveXObject=undefined;
window.msCrypto=undefined;
window.UCWebExt=undefined;
window.ucweb=undefined;
window.qb_bridge=undefined;
window.qbbookshelf=undefined;
window.dolphin=undefined;

window = proxy(window);
// ===============================location======================================
location = class location{};
location = proxy(location);
location.href = 'https://match.yuanrenxue.com/match/10';
location.protocol = 'https:'

// ===============================navigator======================================
navigator = class navigator{};
navigator.userAgent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36';
// 无关变量
navigator.standalone=undefined;
navigator.webkitPersistentStorage = class DeprecatedStorageQuota {};
navigator.mimeTypes = 
{0: MimeType, 1: MimeType, 'application/pdf': MimeType, 'text/pdf': MimeType, length: 2}
navigator.languages=['zh-CN','zh','en'];
navigator.getBattery = function(){return new Promise(function(){})};
navigator.mediaDevices = class MediaDevices{};
navigator = proxy(navigator);
// ===============================document======================================
document = class document{};
document.name = 'document';
document.characterSet = "UTF-8"
document.__proto__.createElement = function(){
    return doElement;
};
doElement = class doElement{};
doElement.__proto__ = document;
doElement.style = {};
doElement.setAttribute=function(){};
document.documentElement = doElement;
document.getElementsByTagName = function(){
    return this;
}
document.exitFullscreen=function(){};
document.addEventListener=function(){};
document.attachEvent=function(){};
document.getElementById=function(){};

document = proxy(document);

// ================================无关变量===========================
(function(){
    [
        "window.dolphininfo=undefined",
        "window.dolphinmeta=undefined",
        "window.safari=undefined",
        "window.orientation=undefined",
        "window.callPhantom=undefined",
        "window._phantom=undefined",
        "window.$hook$=undefined",
        "window.$$logger=undefined",
        "window.$$lsp=undefined",
        "window.$$lsrb=undefined",
        "window.$hdx$=undefined",
        "window.$readyCodeAlreadyExecutedInThisFrame=undefined",
        "window.$sdx$=undefined",
        "window.$uie$=undefined",
        "window.netsparker=undefined",
        "window.__ns=undefined",
        "window.__nsAppendText=undefined",
        "window.eoWebBrowser=undefined",
        "window.hp_identifier=undefined",
        "window.appScanClick=undefined",
        "window.appScanFocusOut=undefined",
        "window.appScanKeyDown=undefined",
        "window.appScanKeyUp=undefined",
        "window.spi_hooked=undefined",
        "window.mozAnimationStartTime=undefined",
        "window.mozRequestAnimationFrame=undefined",
        "window._yrxE7d=undefined",
        "window.Entity=undefined",
        "window.QTP_EPE_HOOK=undefined",
        "window.__QTP__HOOK_NOTIFIER=undefined",
        "window.shenjian=undefined",
        "navigator.appVersion=\"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36\"",
        "window.TEMPORARY=0",
        "navigator.battery=undefined",
        "window.$b_callHandler=undefined",
        "window.$bmF0aXZlRmlVyUHJ=undefined",
        "location.port=''",
        "window.GBAc=1061"
    ].forEach((ele)=>{
        window.eval(ele)
    })
})();